package com.hgxd.utils;

import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

/**
 * @author wtf
 * @create 2023-12-20 18:08
 * @description :
 */
public class ReadJsonFile {
    public static void main(String[] args) {
        // 替换为你的文件路径
        String filePath = "E:/test.js";

        // 读取文件内容
        String fileContent = readFileContent(filePath);

        if (fileContent != null) {
            // 提取JSON部分
            String jsonPart = extractJsonPart(fileContent);

            // 解析JSON
            JsonNode jsonNode = parseJson(jsonPart);

            if (jsonNode != null) {
                // 处理JSON对象
                processJson(jsonNode);
            }
        }
    }

    // 读取文件内容的方法
    private static String readFileContent(String filePath) {
        try {
            Path path = Paths.get(filePath);
            if (Files.exists(path)) {
                return new String(Files.readAllBytes(path));
            } else {
                System.err.println("文件未找到：" + filePath);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }

    // 提取JSON部分的方法
    private static String extractJsonPart(String fileContent) {
        // 寻找JSON部分的起始和结束索引
        int startIndex = fileContent.indexOf('[');
        int endIndex = fileContent.lastIndexOf(']');

        if (startIndex != -1 && endIndex != -1) {
            // 提取JSON部分
            return fileContent.substring(startIndex, endIndex + 1);
        } else {
            System.err.println("在文件内容中未找到JSON部分");
            return null;
        }
    }

    // 解析JSON的方法
    private static JsonNode parseJson(String json) {
        try {
            ObjectMapper objectMapper = new ObjectMapper();
            return objectMapper.readTree(json);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }

    // 处理JSON对象的方法
    private static void processJson(JsonNode jsonNode) {
        // 在这里处理JSON对象
        System.out.println(jsonNode);
    }
}
